negotiator.boaframework.opponentmodel
Class AgentLGModel

java.lang.Object
  extended by negotiator.boaframework.OpponentModel
      extended by negotiator.boaframework.opponentmodel.AgentLGModel

public class AgentLGModel
extends OpponentModel

Adaptation of the opponent model used by AgentLG in the ANAC2012 to be compatible with the BOA framework. Note that originally, the model sums up all value scores which entails that the total preference of a bid can be as high as offered bids * issues. The value score was equal to the amount of times the value was offered divided by total amount of bids offered by the opponent. In my implementation I normalize each value score by the highest value, similar to the implementation of preference profiles in Genius. Finally I sum all results and divide by the amount of issues. This is identical to assuming that the issue weights are uniform. Tim Baarslag, Koen Hindriks, Mark Hendrikx, Alex Dirkzwager and Catholijn M. Jonker. Decoupling Negotiating Agents to Explore the Space of Negotiation Strategies

Author:
Mark Hendrikx

Field Summary
 
Fields inherited from class negotiator.boaframework.OpponentModel
negotiationSession, opponentUtilitySpace
 
Constructor Summary
AgentLGModel()
           
 
Method Summary
 void cleanUp()
          Removes references to the objects used by the opponent model.
 double getBidEvaluation(Bid bid)
          Determines the utility of a bid according to the preference profile.
 java.lang.String getName()
           
 UtilitySpace getOpponentUtilitySpace()
           
 double getWeight(Issue issue)
          Returns the weight of a particular issue in the domain.
 void init(NegotiationSession negotiationSession, java.util.HashMap<java.lang.String,java.lang.Double> parameters)
          Initialize the opponent model by creating an object to keep track of the values for each issue.
 void updateModel(Bid opponentBid, double time)
          Update the opponent model by updating the value score for each issue.
 
Methods inherited from class negotiator.boaframework.OpponentModel
endSession, getIssueWeights, init, isCleared, loadData, setOpponentUtilitySpace, setOpponentUtilitySpace, storeData, updateModel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AgentLGModel

public AgentLGModel()
Method Detail

init

public void init(NegotiationSession negotiationSession,
                 java.util.HashMap<java.lang.String,java.lang.Double> parameters)
          throws java.lang.Exception
Initialize the opponent model by creating an object to keep track of the values for each issue.

Overrides:
init in class OpponentModel
Parameters:
negotiationSession - reference to the state of the negotiation
Throws:
java.lang.Exception

updateModel

public void updateModel(Bid opponentBid,
                        double time)
Update the opponent model by updating the value score for each issue.

Specified by:
updateModel in class OpponentModel
Parameters:
opponentBid -
time - of offering

getBidEvaluation

public double getBidEvaluation(Bid bid)
Description copied from class: OpponentModel
Determines the utility of a bid according to the preference profile.

Overrides:
getBidEvaluation in class OpponentModel
Parameters:
bid - of which the utility is calculated.
Returns:
utility of the opponent's bid

getWeight

public double getWeight(Issue issue)
Description copied from class: OpponentModel
Returns the weight of a particular issue in the domain.

Overrides:
getWeight in class OpponentModel
Parameters:
issue - from which the weight should be returned
Returns:
the uniform issue weight

getOpponentUtilitySpace

public UtilitySpace getOpponentUtilitySpace()
Overrides:
getOpponentUtilitySpace in class OpponentModel
Returns:
utilityspace created by using the opponent model adapter.

cleanUp

public void cleanUp()
Description copied from class: OpponentModel
Removes references to the objects used by the opponent model.

Overrides:
cleanUp in class OpponentModel

getName

public java.lang.String getName()
Overrides:
getName in class OpponentModel
Returns:
name of the opponent model.